package com.hncc.pms.service.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.springframework.stereotype.Service;
import com.hncc.pms.mapper.PmsPatientMapper;
import com.hncc.pms.domain.PmsPatient;
import com.hncc.pms.service.IPmsPatientService;

import javax.annotation.Resource;

/**
 * 病人基本信息Service业务层处理
 *
 * @author ruoyi
 * @date 2020-09-04
 */
@Service
public class PmsPatientServiceImpl implements IPmsPatientService {
    @Resource
    private PmsPatientMapper pmsPatientMapper;

    /**
     * 查询病人基本信息
     *
     * @param id 病人基本信息ID
     * @return 病人基本信息
     */
    @Override
    public PmsPatient selectPmsPatientById(Long id) {
        return pmsPatientMapper.selectPmsPatientById(id);
    }

    /**
     * 查询病人基本信息列表
     *
     * @param pmsPatient 病人基本信息
     * @return 病人基本信息
     */
    @Override
    public List<PmsPatient> selectPmsPatientList(PmsPatient pmsPatient) {
        return pmsPatientMapper.selectPmsPatientList(pmsPatient);
    }

    /**
     * 新增病人基本信息
     *
     * @param pmsPatient 病人基本信息
     * @return 结果
     */
    @Override
    public int insertPmsPatient(PmsPatient pmsPatient) {
        //转日期格式
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        //生成病历号(当前时间+手机号+四位随机数)
        String medicalRecordNumber = format.format(new Date()) + pmsPatient.getPhoneNo().substring(7, 11) + generateFourRandomNumbers();
        pmsPatient.setMedicalRecordNo(medicalRecordNumber);
        return pmsPatientMapper.insertPmsPatient(pmsPatient);
    }

    /**
     * 生成四位随机数
     * @return
     */
    public String generateFourRandomNumbers() {
        String randomNum = "";
        int num = 4;
        for (int i = 1; i <= num; i++) {
            randomNum += (int) (Math.random() * 10) + "";
        }
        return randomNum;
    }

    /**
     * 修改病人基本信息
     *
     * @param pmsPatient 病人基本信息
     * @return 结果
     */
    @Override
    public int updatePmsPatient(PmsPatient pmsPatient) {
        return pmsPatientMapper.updatePmsPatient(pmsPatient);
    }

    /**
     * 批量删除病人基本信息
     *
     * @param ids 需要删除的病人基本信息ID
     * @return 结果
     */
    @Override
    public int deletePmsPatientByIds(Long[] ids) {
        return pmsPatientMapper.deletePmsPatientByIds(ids);
    }

    /**
     * 删除病人基本信息信息
     *
     * @param id 病人基本信息ID
     * @return 结果
     */
    @Override
    public int deletePmsPatientById(Long id) {
        return pmsPatientMapper.deletePmsPatientById(id);
    }

    @Override
    public PmsPatient selectPmsPatientByIdentNo(String identNo) {
        return pmsPatientMapper.selectPmsPatientByIdentNo(identNo);
    }


}
